package com.school.sports.service.Impl;

import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.school.sports.entity.Venue;
import com.school.sports.mapper.VenueMapper;
import com.school.sports.service.VenueService;
import org.springframework.stereotype.Service;
import java.util.List;

@Service
public class VenueServiceImpl extends ServiceImpl<VenueMapper, Venue> implements VenueService {

    /**
     * 按状态查询场地
     */
    @Override
    public List<Venue> getByStatus(String status) {
        LambdaQueryWrapper<Venue> queryWrapper = new LambdaQueryWrapper<>();
        queryWrapper.eq(Venue::getStatus, status); // 条件：状态匹配
        return list(queryWrapper); // 调用父类方法执行查询
    }

    /**
     * 检查场地是否存在（按ID）
     */
    @Override
    public boolean existsById(Integer id) {
        LambdaQueryWrapper<Venue> queryWrapper = new LambdaQueryWrapper<>();
        queryWrapper.eq(Venue::getId, id); // 条件：ID匹配
        // 统计符合条件的记录数，大于0则存在
        return baseMapper.selectCount(queryWrapper) > 0;
    }

    /**
     * 按ID删除场地
     */
    @Override
    public boolean removeById(Integer id) {
        // 复用父类实现（基于BaseMapper的deleteById）
        return super.removeById(id);
    }

    /**
     * 新增场地
     */
    @Override
    public boolean save(Venue venue) {
        // 复用父类实现（基于BaseMapper的insert）
        return super.save(venue);
    }

    /**
     * 按ID查询场地
     */
    @Override
    public Venue getById(Integer id) {
        // 复用父类实现（基于BaseMapper的selectById）
        return super.getById(id);
    }

    /**
     * 按ID更新场地
     */
    @Override
    public boolean updateById(Venue venue) {
        // 复用父类实现（基于BaseMapper的updateById）
        return super.updateById(venue);
    }
}